﻿using Model.Models;
using System;
using System.Net.Mail;

namespace Services
{
    /// <summary>
    /// Classe de serviço responsável por enviar mensagens de E-mail e SMS.
    /// </summary>
    public class GerenciadorMensagem
    {
        
        public bool EnviarEmail(MensagemModel mensagem)
        {
            MailMessage mail = new MailMessage();
            SmtpClient SmtpServer = new SmtpClient("smtp.gmail.com");

            mail.From = new MailAddress(mensagem.EmailRemetente);
            foreach(string email in mensagem.EmailsDestinatarios)
            {
                mail.To.Add(new MailAddress(email));
            }

            mail.Subject = mensagem.Assunto;
            mail.Body = mensagem.Texto;
            mail.Attachments.Add(new Attachment(mensagem.Anexos[0]));

            SmtpServer.Port = 587;
            SmtpServer.Credentials = new System.Net.NetworkCredential(mensagem.EmailRemetente, mensagem.SenhaRemetente);
            SmtpServer.EnableSsl = true;

            SmtpServer.Send(mail);
            return true;
        }

        /// <summary>
        /// Enviar um SMS para todos os contatos especificados em um MensagemModel.
        /// </summary>
        /// <param name="mensagem">Objeto MensagemModel especificando os dados do SMS</param>
        /// <returns>Se o SMS foi enviado com sucesso.</returns>
        public bool EnviarSMS(MensagemModel mensagem)
        {
            // TODO: Enviar SMS para todos os objetos da List Celulares.
            return true;
        }
    }
}
